# 
# Utilidades varias
# Comprueba si la version de python y pygame del usuario cumplen los requisitos minimos.
# This game is licensed under GPL v2, and copyright (C) Jack Whitham 2006-07.

# Funciones:
#  - Comprobar_Versiones: Comprueba la version de python y pygame y finaliza el juego con un mensaje en consola si es baja.
#                         El codigo base inicial de este modulo ha sido obtenido del juego "20,000 Light Years Into Space"
#                         publicado por (C) Jack Whitham 2006-07 bajo licencia GPL v2. http://www.jwhitham.org.uk/20kly/
#  -       Cargar_Sonido: Funcion para cargar un sonido.
#  -       Cargar_Imagen: Funcion para cargar una imagen.


import sys,os,pygame

from gettext import gettext as _

global GAME_DIR # Hago GAME_DIR global para las funciones del modulo
GAME_DIR = os.path.abspath(os.path.dirname(sys.argv[0]))

def Comprobar_Versiones():
    if ( sys.__dict__.has_key("version_info" ) ):
        (major, minor, micro, releaselevel, serial) = sys.version_info
        if (( major < 2 )
        or (( major == 2 ) and ( minor < 5 ))):
            print ""
            print _("Python version 2.5 or higher is required.")
            print _("You appear to be using version"),(str(major) + "." + str(minor))
            print _("Please install the latest version of the 2.X series from http://www.python.org/")
            sys.exit(1)
        elif major > 2:
            print ""
            print _("You appear to be using version"),(str(major) + "." + str(minor))
            print _("This 3.X series is incompatible with 2.X series.")
            print _("Please install the latest version of the 2.X series from http://www.python.org/")
            sys.exit(1)
    else:
            print ""
            print _("Your Python version appear to be very old")
            print _("Please, install the latest version of the 2.X series from http://www.python.org/")
            sys.exit(1)
    
    try:
        import pygame
    except:
        print ""
        print _("Pygame does not appear to be installed.")
        print _("Please install the latest version from http://www.pygame.org/")
        sys.exit(1)
  
    try:
        # God damn! The size of this field changed between 
        # ver. 1.6 and ver. 1.7. Arrgh. 
        [major, minor] = list(pygame.version.vernum)[ 0:2 ]
        x = pygame.version.ver
    except:
        print ""
        print _("Pygame is installed, but you have an old version.")
        print _("Please install the latest version from http://www.pygame.org/")
        sys.exit(1)

    if (( major < 1 )
    or ( major == 1 ) and ( minor < 7 )):
        print ""
        print _("Pygame version 1.7.x or higher is required.")
        print _("Please install the latest version from http://www.pygame.org/")
        sys.exit(1)

    print _("Python version"),sys.version, _("- good")
    print _("Pygame version"),pygame.version.ver, _("- good")

def Cargar_Sonido(archivo):
    ruta_archivo = os.path.join(GAME_DIR,"data","audio",archivo)
    try:
        sonido = pygame.mixer.Sound(ruta_archivo)
    except Exception, x:
        print ""
        print _("WARNING: Error loading Sound ") + ruta_archivo
        print repr(x) + " " + str(x)
        print ""
        sonido = None

    return sonido
    
def Cargar_Imagen(archivo):
    ruta_archivo = os.path.join(GAME_DIR,"data",archivo)
    try:
        imagen = pygame.image.load(ruta_archivo)
    except Exception, r:
        print ""
        print _("WARNING: Error loading image ") + ruta_archivo
        print str(r)
        print ""
        imagen = pygame.Surface((20,20))
        imagen.fill((255,0,0))

    return imagen
